lib.use(['element', 'table', 'form','laydate','tablePlug'], function () {
    var table = layui.table;
    var layer = layui.layer;
    var form = layui.form;
    var tablePlug = layui.tablePlug;
    var laydate=layui.laydate;
    var searchFrm = layui.Form('searchFrm');
    var goodsAccountTable;

    //初始表格基础参数
    table.set(common.layui.table.config(tablePlug));

    searchFrm.selectRender();


    laydate.render({elem: '#accountDate' ,range: '至'});


    // 渲染表格
    goodsAccountTable = table.render({
            elem: '#goodsAccountTable'
            , url: common.util.createUrl('/inv/goodsAccount/list')
            , cols: [[
                {type:'checkbox',rowspan:2}
               ,{type: 'numbers', title: '编号',rowspan:2 }
                ,{ field: 'id',  hide: true}
                ,{ field: 'classId',  hide: true}
                ,{ field: 'goodsId',  hide: true}
                ,{ field: 'remark',  hide: true}
                ,{ field: 'createUserId',  hide: true}
                ,{ field: 'createUserName',  hide: true}
                ,{ field: 'createTime',  hide: true}
                ,{ field: 'updateUserId',  hide: true}
                ,{ field: 'auxUomId',  hide: true}
                ,{ field: 'warehouseId',  hide: true}
                ,{ field: 'baseUomId',  hide: true}
                ,{ field: 'qtyUomId',  hide: true}
                ,{ title: '总账日期', field: 'accountDate',rowspan:2}
                ,{ title: '总账月份', field: 'accountMonth',rowspan:2}
                //,{ title: 'id路径', field: 'classPathId' }
                //,{ title: '名称路径', field: 'classPathName' }
                //,{ title: '色号', field: 'colorNumber' }
                //,{ title: '商品等级', field: 'itemGrade' ,templet: function (row) { return common.dist.getValue("inv.GoodsAccount_ItemGradeEnum",row.itemGrade);}}
                ,{ title: '商品信息',field: 't', colspan:5,align:'center'}
                ,{ title: '单位信息',field: 't', colspan:3,align:'center'}
                ,{ title: '仓库信息',field: 't', colspan:2,align:'center'}
                ,{ title: '期初', field: 't',colspan:5,align:'center'}
                ,{ title: '入库', field: 't',colspan:5,align:'center'}
                ,{ title: '出库', field: 't',colspan:5,align:'center'}
                ,{ title: '期末', field: 't',colspan:5,align:'center'}
                //,{ title: '单据状态', field: 'accountState' ,templet: function (row) { return common.dist.getValue("inv.GoodsAccount_AccountStateEnum",row.accountState);}}
                //,{ title: '修改人', field: 'updateUserName' ,rowspan:2}
                //,{ title: '修改时间', field: 'updateTime' ,rowspan:2}
            ],[
                 { title: '商品分类', field: 'className' }
                ,{ title: '商品编码', field: 'goodsCode' }
                ,{ title: '商品名称', field: 'goodsName' }
                ,{ title: '商品型号', field: 'goodsModel' }
                ,{ title: '商品规格', field: 'goodsSpec' }
                ,{ title: '基础单位', field: 'baseUomName' }
                ,{ title: '库存单位', field: 'qtyUomName' }
                ,{ title: '辅助单位', field: 'auxUomName' }
                ,{ title: '仓库编码', field: 'warehouseCode'}
                ,{ title: '仓库名称', field: 'warehouseName'}
                ,{ title: '期初基础数量', field: 'beginBaseNum' }
                ,{ title: '期初库存数量', field: 'beginQtyNum' }
                ,{ title: '期初辅助数量', field: 'beginAuxNum' }
                ,{ title: '期初单价', field: 'beginPrice' }
                ,{ title: '期初余额', field: 'beginAmount' }
                ,{ title: '入库基础数量', field: 'inBaseNum' }
                ,{ title: '入库库存数量', field: 'inQtyNum' }
                ,{ title: '入库辅助数量', field: 'inAuxNum' }
                ,{ title: '入库单价', field: 'inPrice' }
                ,{ title: '入库余额', field: 'inAmount' }
                ,{ title: '出库基础数量', field: 'outBaseNum' }
                ,{ title: '出库库存数量', field: 'outQtyNum' }
                ,{ title: '出库辅助数量', field: 'outAuxNum' }
                ,{ title: '出库单价', field: 'outPrice' }
                ,{ title: '出库余额', field: 'outAmount' }
                ,{ title: '期末基础数量', field: 'endBaseNum' }
                ,{ title: '期末库存数量', field: 'endQtyNum' }
                ,{ title: '期末辅助数量', field: 'endAuxNum' }
                ,{ title: '期末单价', field: 'endPrice' }
                ,{ title: '期末余额', field: 'endAmount' }
             ]
        ]
    });

    /**
     * 监听行单击事件，进入编辑事件
     */
    table.on('rowDouble(goodsAccountTableFilter)', function(obj){
        update(obj)
    });
    /**
     * 删除
     */
    $(document).on('click','#del',function(){
        del(table.checkStatus('goodsAccountTable'))
    });

    /**
     * 新增
     */
    $(document).on('click','#add',function(){
        location.href = 'goodsAccountForm.html';
    });
    /**
     * 审核
     */
    $(document).on('click','#check',function(){
        check(table.checkStatus('goodsAccountTable'))
    });
    /**
     * 导出
     */
    $(document).on('click','#export',function(){
        var params=common.from.serializeObject('#searchFrm');
        params['pages']=goodsAccountTable.config.page.pages;
        params['limit']=goodsAccountTable.config.page.limit;
        common.util.exportWindows('/sale/goodsAccount/export',params)
    });

    /**
     * 监听搜索条件提交事件
     */
    form.on('submit(searchFilter)', function(data){
        var param = data.field;
        searchTable(param)
        return false;
    });

    /**
     * 查询表格
     * @param params
     */
    function searchTable(params) {
         params=common.from.serializeObject('#searchFrm');
        goodsAccountTable.reload({where: params})
    }

    /**
     * 修改
     * @param obj
     */
    function update(obj) {
        if(!common.auth.hasPermission("inv:goodsAccount:update")){return;}
        var postData = [];
        if(obj.data.constructor === Array){
            postData=obj.data.map(function (item) {
                return item['id'];
            });
        }else{
            postData=[obj.data.id]
        }
        if(postData.length!=1){common.util.error('请选择一条记录');return;}
        location.href = 'goodsAccountForm.html?id=' + postData[0];
    }
    /**
     * 删除
     * @param obj
     */
    function del(obj) {
        if(!common.auth.hasPermission("inv:goodsAccount:delete")){return;}
        var postData = [];
        if(obj.data.constructor === Array){
            postData=obj.data.map(function (item) {
                return item['id'];
            });
        }else{
            postData=[obj.data.id]
        }

        if(postData.length!=1){common.util.error('请选择一条记录');return;}
        layer.confirm('确认删除!', function(index){
                console.log('Del param is', postData);
                common.ajax.post('/inv/goodsAccount/delete', postData, function (resp) {
                    searchTable();
                    layer.close(index);
                })

         });
    }


    /**
     * 审核
     * @param obj
     */
    function check(obj) {

        layer.open({
            type: 2,
            area: ['600px', '500px'],
            content: 'goodsAccountCheck.html' //这里content是一个URL，如果你不想让iframe出现滚动条，你还可以content: ['http://sentsin.com', 'no']
        });

return ;


        if(!common.auth.hasPermission("inv:goodsAccount:check")){return;}
        var postData = [];
        if(obj.data.constructor === Array){
            postData=obj.data.map(function (item) {
                return item;
            });
        }else{
            postData=[obj.data]
        }

        if(postData.length!=1){common.util.error('请选择一条记录进行操作');return;}
        common.util.confirm('确认审核!', function(index){
            console.log('Config Check param is', postData);
            common.ajax.get('/inv/goodsAccount/check/'+postData[0].id, null, function (resp) {
                searchTable();
                layer.close(index);
                common.util.success("审核成功")
            })

        });
    }
});
